home *** CD-ROM | disk | FTP | other *** search
- %%BeginFile: lw8_nup-2.0
- /nx Z
- /ny Z
- /pagew Z
- /pageh Z
- /angle Z
- /paperw Z
- /paperh Z
- /nups Z
- /pgx Z
- /pgy Z
- /papermarg 1 def
- /pagemarg 10 def
- /framewidth 1 def
- /numframes 2 def
- /stepdirection F def
- /startpage{
- gS
- 0 0 mT transform pagew pageh mT dtransform rC
- }bd
- /startNup{
- /ny xs
- /nx xs
- /pageh xs
- /pagew xs
- dup/angle xs
- rotate
- angle 180 mod 0 ne
- {
- /por por not store
- }if
- clippath/nups pathbbox
- 3 -1 roll sub
- papermarg sub
- ny div pagemarg sub
- pageh div exch
- 3 -1 roll sub
- papermarg sub nx div
- pagemarg sub pagew div
- 2 copy gt{exch}if pop store
- nups dup scale
- /paperw pagew pagemarg nups div add store
- /paperh pageh pagemarg nups div add store
- pathbbox mT aload pop
- pagemarg nups div dup
- 8 index 11 index sub
- paperh ny mul sub
- add 2 div exch
- 9 index 12 index sub paperw nx mul sub add 2 div
- 8 -2 roll add 0 gt{9}{neg 7}ifelse index add 4 -1 roll sub exch
- 5 -2 roll add 0 gt{5}{neg 3}ifelse index add 3 -1 roll sub :T pop pop pop pop
- /paperw paperw paperh mT idtransform abs/paperh xs abs store
- /pagew pagew pageh mT idtransform abs/pageh xs abs store
- mT 0 get abs mT 1 get abs lt{/nx ny/ny nx store store}if
- .48 framewidth div nups div lw
- /pgx 0 store/pgy 0 store
- np
- stepdirection
- {
- paperw nx 1 sub mul 0 mT dtransform :T
- /paperw paperw neg store
- }if
- startpage
- }bd
- /startnup{
- angle
- pagew
- pageh
- mT dtransform abs exch abs exch
- nx
- ny
- mT 0 get abs mT 1 get abs lt{exch}if
- startNup
- }bd
- /realshowpage/showpage ld
- /nupshowpage{
- gR
- mT concat
- numframes 0 gt
- {
- /setstrokeadjust where{pop currentstrokeadjust T setstrokeadjust}if
- pagemarg 2 div nups div dup mT idtransform
- abs neg exch abs neg exch paperw
- stepdirection{neg}if
- paperh
- currentlinewidth framewidth mul 4 mul
- adjRect
- numframes
- {
- 4 copy
- rS
- currentlinewidth framewidth
- mul 4 mul
- adjRect
- }repeat
- pop pop pop pop
- /setstrokeadjust where{pop setstrokeadjust}if
- }if
- /pgx pgx 1 add dup nx eq{
- pop 0 store
- paperw
- 1 nx sub mul
- /pgy pgy 1 add dup ny eq{
- gS realshowpage gR
- pop 0 store
- paperh 1 ny sub mul
- }{
- store paperh
- }ifelse
- }{
- store paperw
- 0
- }ifelse :T
- mT $m invertmatrix concat startpage
- }bd
- userdict/showpage/nupshowpage load put
- /finalpage{
- gR
- pgx 0 gt pgx nx lt and pgy 0 gt pgy ny lt and or{realshowpage}if
- /showpage/realshowpage ld
- }bd
- %%EndFile
-